package club.hicode.daydayup.netty.udp.agent;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

@Data
@NoArgsConstructor
public class CmdBO<T, R> {

    /**
     * 指令ID
     */
    private String id;

    /**
     * 服务名称通过.进行分割，例如<br>
     * <code>[nodeName].interfaceName.methodName</code>
     */
    private String serviceName;

    /**
     * 用户名：业务保证唯一
     *
     * @since 1.0.3 应马总要求加上，方便入库操作
     */
    private String userName;

    /**
     * 具体执行执行类的名称或者简称
     */
    private String executorName;

    /**
     * 服务的客户端ID
     */
    private String clientId;

    /**
     * 服务的服务端ID
     */
    private String serverId;

    /**
     * 错误代码
     *
     * @since 1.0.3 由 Long-->String 方便扩展定义
     */
    private String errorCode;

    /**
     * 错误信息
     */
    private String errorMsg;

    /**
     * 扩展字段，用在部分业务上
     *
     * @since 1.3.0
     */
    private Map<String, String> extension;

    /**
     * 请求参数
     */
    private T params;

    /**
     * 响应参数
     */
    private R result;

}
